//https://www.luogu.com.cn/problem/P1327
// 编程语言  C++17 O2
// 代码长度  989B
// 用时      1.87s
// 内存      1.34MB
#include<iostream>
#include<array>
#include<algorithm>
const int MAXN=100010;
int raw[MAXN];
int sorted[MAXN];
bool checked[MAXN];
int N;
//raw : 8 23 4 16 77 -5 53 100
//sor : -5 4 8 16 23 53 77 100
void init_checked(){
	for(int i=0;i<N;++i){
		checked[i]=false;
	}
}

int getcount(){
	init_checked();
	using namespace std;
	int all_count=0;
	for(int i=0;i<N;++i){
		int d_raw_i=raw[i],d_sort_i=sorted[i];
		if(raw[i]==sorted[i]){continue;}
		else if(checked[i]){continue;}
		int count=0;
		checked[i]=true;
		int j=find(sorted,sorted+N,raw[i])-sorted;
		while(j!=i){
			checked[j]=true;
			j=find(sorted,sorted+N,raw[j])-sorted;
			++count;
		}
		all_count+=count;
	}
	return all_count;
}

int main(){
	using namespace std;
	cin>>N;
	for(int i=0;i<N;++i){
		cin>>raw[i];
	}
	for(int i=0;i<N;++i){
		sorted[i]=raw[i];
	}
	sort(sorted,sorted+N);
	int count=getcount();
	cout<<count;
	return 0;
}
